CA=./ca
SRV=./server
DB=./db
PRIV=private

clear

# Tworzenie katalogow

if [ ! -d "$CA" ]; then 
	mkdir $CA
fi

if [ ! -d "$SRV" ]; then
	mkdir $SRV
fi

if [ ! -d "$DB" ]; then
	mkdir $DB
fi

rm -rf $CA/*
rm -rf $SRV/*
rm -rf $DB/*


# CA serial 

echo "01" > $CA/ca-cert.srl


# Klucz prwatny CA

mkdir $CA/$PRIV

echo -e "\n- Generowanie klucza prywatnego organizacji CA\n"
openssl genrsa -out $CA/$PRIV/ca-key.pem -des3 2048

echo -e "\n- Tworzenie niepodpisanego certyfikatu z kluczem publicznym CA\n"
openssl req -new -key $CA/$PRIV/ca-key.pem -out $CA/ca-cert.csr -config openssl.cnf

echo -e "\n- Podpisywanie certyfikatu wlasnym kluczem\n"
openssl x509 -req -signkey $CA/$PRIV/ca-key.pem -in $CA/ca-cert.csr -out $CA/ca-cert.pem -days 670

rm $CA/ca-cert.csr


# Klucz prywatny serwera WWW

mkdir $SRV/$PRIV

echo -e "\n- Generowanie klucza prywatnego serwera WWW\n"
openssl genrsa -out $SRV/$PRIV/server-key.pem -des3 2048

echo -e "\n- Zdejmowanie hasla z klucza prywatnego serwera WWW\n"
openssl rsa -in $SRV/$PRIV/server-key.pem -out $SRV/$PRIV/server-key.pem  

echo -e "\n- Tworzenie niepodpisanego certyfikatu z kluczem publicznym serwera WWW\n"
openssl req -new -key $SRV/$PRIV/server-key.pem -out $SRV/server-cert.csr -config openssl.cnf

echo -e "\n- Podpisywanie certyfikatu serwera WWW kluczem CA\n"
openssl x509 -CA $CA/ca-cert.pem -CAkey $CA/$PRIV/ca-key.pem -CAserial $CA/ca-cert.srl -req -in $SRV/server-cert.csr -out $SRV/server-cert.pem -days 670

rm $SRV/server-cert.csr


# Klucz prywatny serwera bazy danych

mkdir $DB/$PRIV

echo -e "\n- Generowanie klucza prywatnego serwera bazy danych\n"
openssl genrsa -out $DB/$PRIV/db-key.pem -des3 2048

echo -e "\n- Zdejmowanie hasla z klucza prywatnego serwera bazy danych\n"
openssl rsa -in $DB/$PRIV/db-key.pem -out $DB/$PRIV/db-key.pem  

echo -e "\n- Tworzenie niepodpisanego certyfikatu z kluczem publicznym serwera bazy danych\n"
openssl req -new -key $DB/$PRIV/db-key.pem -out $DB/db-cert.csr -config openssl.cnf 

echo -e "\n- Podpisywanie certyfikatu serwera bazy danych kluczem CA\n"
openssl x509 -CA $CA/ca-cert.pem -CAkey $CA/$PRIV/ca-key.pem -CAserial $CA/ca-cert.srl -req -in $DB/db-cert.csr -out $DB/db-cert.pem -days 670 

rm $DB/db-cert.csr
